{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c7503488",
   "metadata": {},
   "source": [
    "# python 期末项目笔记\n",
    "\n",
    "## 项目名称  \n",
    "\n",
    "1. 这个期末项目主要根据老师的作业要求来完成，共有四个功能：\n",
    "> 1. 名字全称  \n",
    "> 2. 元音字母词频统计  \n",
    "> 3. 课表  \n",
    "> 4. 购物车  \n",
    "\n",
    "![思维图](../static/img/思维导图.png) \n",
    "2. 本项目体现的价值主张是为用户提供功能查询四个，尽可能减少html页面，减少跳转，并提供多种交互式体验，增强用户使用过程中的体验效果\n",
    "![思维图](../static/img/思维导图.png) \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "## 问题表述\n",
    "\n",
    "1. 在项目中，配置flask环境，查找html和css样式模板，并在模板的基础上加入JavaScript实现体验效果更强的交互性  \n",
    "2. 通过在“.py”中使用method=['GET','POST']来提交跳转，得到起始页和结果页的联动  \n",
    "3. 为用户对象提供服务：  \n",
    "> 1. 一个期末项目作业的实现：实现四个功能（名字全称，元音字母词频统计，课程表还有购物车）  \n",
    "> 2. 为其他同学提供期末作业参考  \n",
    "> 3. 同样作为初学者，可以通过我的代码还有平面设计进行学习  \n",
    "> 4. 课表功能，既可以了解我的课表，了解我的作息时间，还可以通过修改，来实现用户自己的作息时间安排  \n",
    "\n",
    "## 解决方案表述\n",
    "\n",
    "1. 项目规划：先配置flask环境，再完成主页的框架建设（html），给他皮肤（css），再是嵌入动作（javas），完成主页后在主页中加入功能按钮，我自己在简单的页面跳转时，一般用<a herf=''></a>来实现，但是在嵌入py功能后，用<form...><input action...></form>来得到功能结果页的跳转。在其中还运用到字典，实现结果呈现；for循环实现词频统计次数；还有if设置条件；再是视图函数，在函数的过程决定了你操作的方法（实现的功能），例如 if elif else for while ...，还有return的用法：返回数据内容，text文本，HTML文件（模板渲染），JSON文件等。一步步实现HTML和HTML之间的跳转联动，反复设置CSS样式，给予用户更加简洁易懂的页面设计，以不断优化用户视觉感官效果为目的，采用现代风景的风格给人轻松的气氛。最后是一次一次调节run来解决体验感不适的地方一步步优化。\n",
    "\n",
    "## 核心功能\n",
    "\n",
    "<strong> 1. 名字全称</strong>  \n",
    "<strong> 2. 元音字母词频统计</strong>  \n",
    "<strong> 3. 课表</strong>  \n",
    "<strong> 4. 购物车</strong>  \n",
    "\n",
    "## 编程功能的基本描述\n",
    "\n",
    "1.  Python 是一种代表简单主义思想的语言。阅读一个良好的 Python 程序就感觉像是在读英语一样，尽管这个英语的要求非常严格！Python 的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。  \n",
    "2. Flask的描述：  \n",
    "from flask import Flask  \n",
    "app = Flask(__name__)  \n",
    "@app.route(\"/\")  \n",
    "def hello_world():  \n",
    "    return \"<p>Hello, World!</p>\"  \n",
    "    \n",
    "    > 1.首先我们导入了 Flask 类。该类的实例将会成为我们的 WSGI 应用。  \n",
    "    > 2.接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。 __name__ 是一个适用于大多数情况的快捷方式。有了这个参数， Flask 才能知道在哪里可以找到模板和静态文件等东西。  \n",
    "    > 3.然后我们使用 route() 装饰器来告诉 Flask 触发函数 的 URL 。  \n",
    "    > 4.函数返回需要在用户浏览器中显示的信息。默认的内容类型是 HTML ，因此字 符串中的 HTML 会被浏览器渲染。  \n",
    "把它保存为 hello.py 或其他类似名称。请不要使用 flask.py 作为应用名称，这会与 Flask 本身发生冲突。可以使用 flask 命令或者 python 的 -m 开关来运行这个应用。  \n",
    "以此来构建flask，这是其基本的原理内容\n",
    "3. 页面优化：页面的优化不是说越花里胡哨体验感越强，他讲究的更多是用户在体验时对于整个页面的把控，是否能够直接上手。更多时候，我们可以采用简单的布局排版给予用户更好的体验。  \n",
    "4. 语言逻辑：HTML让我们对于一个网站的框架进行构建，CSS是设置网址的样式，使其更美观，还有js，python，四者综合，有利于培养我们的细心程度，更多的是计算机语言的逻辑。  \n",
    "5. 作为一个初始者，需要很多学习参考资源，参考文档如下：\n",
    "* [老师博客](https://www.cnblogs.com/xuzhichao)\n",
    "* [Flask](https://dormousehole.readthedocs.io/en/latest/quickstart.html#id10)\n",
    "* [jinjia2](https://palletsprojects.com/p/jinja/)\n",
    "* [HTML](https://www.w3school.com.cn/html/index.asp)\n",
    "* [Python 教程](https://docs.python.org/zh-cn/3/tutorial/index.html)\n",
    "* [CSDN 开发者社区](https://www.csdn.net/)\n",
    "* [w3school 在线教程](https://www.w3school.com.cn/index.html)\n",
    "* [Bootstrap 中文使用手册](https://www.bootstrap.cn/doc/read/94.html)\n",
    "* [Bootstrap 模板](https://getbootstrap.com/)\n",
    "\n",
    "## 学习心得\n",
    "\n",
    "<strong> 在这次期末项目完成中，认识到，对于代码语言类学习的最好方式是动手自己去敲，去请教别人，别人很难给你最准确的方法，相比之下，我们自己从无到有的去进行操作，不懂的百度，一行一行试错，对于整个项目的开始直到结束都起着决定性的帮助。不仅如此，写代码，真的很考察耐心，还有逻辑思维，你需要反复尝试才知道问题出在哪里；总结：期末项目，我学到了很多。</strong>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
